10 REM CALENDAR MAKER 20 REM BY: BOB KODADEK 30 REM 3164 SURREY LANE 40 REM ASTON, PA 19014 50 : 60 DIM MO$(12),ND(12),MM(50),XM$(50,5):U$=CHR$(221) 70 FOR I=1TO12:READ MO$(I),ND(I):NEXT 80 FOR I=0TO6:READ D$:DY$=DY$+D$+" ":PD$=PD$+D$+" ":NEXT 90 FOR I=0TO9:S$=S$+" ":NEXT:FOR I=0TO77:H$=H$+CHR$(45):NEXT 100 US$=U$+S$:PRINT"[147]RUN - CALENDAR MAKER":PRINT:GOSUB 590 110 GOSUB 690 120 GOSUB 330:K=VAL(A$):IF K<1 OR K>5 THEN 120 130 IF K=4 THEN PRINT"[147]ONE MOMENT...":RUN 140 IF K=5 THEN END 150 ON K GOSUB 180,380,430:GOTO110 160 : 170 REM ----- EDIT MEMOS ----- 180 GOSUB 300 190 PRINT"[147]MEMOS FOR "MO$(MO)DT 200 PRINT" >----------< 10 CHARACTERS EACH":GOSUB 270 210 PRINT"[145][145][145][145][145][145][145]":FOR I=0TO5:INPUT"";X$:X$=LEFT$(X$,10) 220 IF LEN(X$) <10 THEN X$=X$+CHR$(32):GOTO 220 230 XM$(DT+J,I)=X$:NEXT:PRINT 240 GOSUB 270:PRINT"IS THIS CORRECT? (Y OR N)" 250 GOSUB 330:IF A$ <> "Y" THEN 190 260 RETURN 270 FOR I=0TO5:IF XM$(DT+J,I)="" THEN XM$(DT+J,I)=S$ 280 PRINT I+1 SPC(1) CHR$(18) XM$(DT+J,I):NEXT:RETURN 290 : 300 PRINT"ENTER MEMO DATE 1 -"ND(MO):INPUT DT 310 IF DT <1 OR DT >ND(MO) THEN PRINT"[145][145][145]":GOTO 300 320 MM(DT)=1:RETURN 330 : 340 A$="":GET A$:IF A$="" THEN 330 350 RETURN 360 : 370 REM ------ CANCEL MEMO ------ 380 GOSUB 300:MM(DT)=0:FOR I=0TO5 390 XM$(DT+J,I)=S$:NEXT 400 RETURN 410 : 420 REM ------ PRINT CALENDAR ------ 430 PRINT"[147] TURN ON PRINTER":PRINT"READY? (Y OR N)" 440 GOSUB 330:IF A$ <> "Y" THEN RETURN 450 CLOSE 4:OPEN 4,4:C=0:C1=1:N=0 460 L=LEN(MO$(MO))/2:PRINT#4,CHR$(14) SPC(16-L) MO$(MO)" -" YR 470 PRINT#4,CHR$(13) CHR$(13) CHR$(14)LEFT$(PD$,39):PRINT#4,CHR$(15):PRINT#4,H$ 480 FOR I=1TOY:FOR T=0TO6:C=C+1 490 IF C=ND(MO) THEN PRINT#4,US$;:GOTO 520 500 N=N+1:N$=" "+MID$(STR$(N),2) 510 PRINT#4,LEFT$(US$,7)CHR$(14)RIGHT$(N$,2)CHR$(15); 520 NEXT T:PRINT#4,U$ 530 FOR T1=0TO5:FOR T2=0TO6 540 IF XM$(C1+T2,T1)=""THEN PRINT#4,US$;:GOTO560 550 PRINT#4,U$+XM$(C1+T2,T1); 560 NEXT T2:PRINT#4,U$:NEXT T1:C1=C1+7:PRINT#4,H$ 570 NEXT I:PRINT#4:CLOSE 4:RETURN 580 : 590 REM ------ GREGORIAN DATE ------ 600 INPUT"ENTER MONTH (1-12)";MO:IF MO <1 OR MO>12 THEN PRINT"[145][145]":GOTO600 610 INPUT"ENTER YEAR (YYYY)";YR:IF YR <1583 THEN PRINT"[145][145]":GOTO610 620 Q=YR+(MO<3):J=INT(275*MO/9)-INT((7*Q+7)/4)+367*YR+1-INT((INT(Q/100)+1)*3/4) 630 J=J-4-7*INT((J-4)/7):X=(ND(MO)+J)/7:Y=INT(X):IF X>Y THEN Y=Y+1 640 IF(YR/100)-INT(YR/100)=0 AND (YR/400)-INT(YR/400)<>0 THEN RETURN 650 IF (YR/4)-INT(YR/4)=0 AND MO=2 THEN ND(MO)=29 660 RETURN 670 : 680 REM ----- PRINT SCREEN ----- 690 L=LEN(MO$(MO))/2:PRINT"[147]"SPC(16-L) MO$(MO)" -" YR 700 PRINT:PRINT SPC(3) DY$:PRINT:C=0:N=0 710 FOR I=1TOY:FOR T=1TO7:C=C+1:IF C=ND(MO) THEN 750 730 N=N+1:N$=" "+MID$(STR$(N),2):IF MM(N) THEN PRINT CHR$(18); 740 PRINT SPC(3) RIGHT$(N$,2) CHR$(146); 750 NEXT T:PRINT:PRINT:NEXT I 760 PRINT"1. EDIT A MEMO":PRINT"2. CANCEL MEMO":PRINT"3. PRINT CALENDAR" 770 PRINT"4. NEW CALENDAR":PRINT"5. QUIT" 780 PRINT"SELECT (1-5)":RETURN 790 : 800 DATA JANUARY,31,FEBRUARY,28,MARCH,31,APRIL,30,MAY,31,JUNE,30,JULY,31 810 DATA AUGUST,31,SEPTEMBER,30,OCTOBER,31,NOVEMBER,30,DECEMBER,31 820 DATA SUN,MON,TUE,WED,THU,FRI,SAT